package com.zablert.mainactivity.teaching;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;

import com.zablert.mainactivity.R;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

abstract class BaseAdapter<T> extends RecyclerView.Adapter<BaseViewHolder> {
    @Nullable
    private List<T> mData = new ArrayList<>();

//    /**
//     * 存入数据源
//     */
//    protected void setData(@Nullable List<T> data) {
//        if (mData == null) {
//            mData = Objects.requireNonNullElseGet(data, ArrayList::new);
//        } else {
//            mData.clear();
//            if (data != null) {
//                mData.addAll(data);
//            }
//        }
//    }
//
//    /**
//     * 获取单个Item
//     *
//     * @param position
//     * @return T or NULL
//     */
//    @Nullable
//    protected T getItem(int position) {
//        if (mData == null || position >= mData.size()) {
//            return null;
//        }
//        return mData.get(position);
//    }

//    /**
//     * 计算条目
//     * @return count
//     */
//    @Override
//    public int getItemCount() {
//        return mData == null ? 0 : mData.size();
//    }

    @Override
    public void onBindViewHolder(@NonNull BaseViewHolder holder, int position) {
    }

    @NonNull
    @Override
    public BaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(getLayoutId(), parent, false);
        return new BaseViewHolder(view);
    }

    public abstract int getLayoutId();

}
